package site.isscloud.project.domain;

import site.isscloud.common.core.domain.BaseEntity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 温度概览信息类
 */
public class TemperatureOverview extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 设备数量 */
    private int deviceCount;

    /** 通道数量 */
    private int channelCount;

    /** 米标总数 */
    private int meterCount;

    /** 最高温度（实时） */
    private double maxTemperature;

    /** 最低温度（实时） */
    private double minTemperature;

    /** 平均温度（实时） */
    private double avgTemperature;

    /** 告警总数 */
    private int alarmCount;

    /** 断纤告警数量 */
    private int fiberAlarmCount;

    /** 激光器告警数量 */
    private int laserAlarmCount;

    /** 温度告警数量 */
    private int temperatureAlarmCount;

    /** 设备通道列表 */
    private List<DeviceChannel> deviceChannels;

    /** 设备通道温度详情 Map<deviceNo-channelNo, temperatureData> */
    private Map<String, Map<String, Object>> deviceChannelTemperatures;


    public TemperatureOverview() {
        // 初始化默认值
        this.deviceCount = 0;
        this.channelCount = 0;
        this.meterCount = 0;
        this.maxTemperature = 0.0;
        this.minTemperature = 0.0;
        this.avgTemperature = 0.0;
        this.alarmCount = 0;
        this.fiberAlarmCount = 0;
        this.laserAlarmCount = 0;
        this.temperatureAlarmCount = 0;
        this.deviceChannels = new ArrayList<>();
        this.deviceChannelTemperatures = new HashMap<>();
    }

    // Getter 和 Setter 方法
    public int getDeviceCount() {
        return deviceCount;
    }

    public void setDeviceCount(int deviceCount) {
        this.deviceCount = deviceCount;
    }

    public int getChannelCount() {
        return channelCount;
    }

    public void setChannelCount(int channelCount) {
        this.channelCount = channelCount;
    }

    public int getMeterCount() {
        return meterCount;
    }

    public void setMeterCount(int meterCount) {
        this.meterCount = meterCount;
    }

    public double getMaxTemperature() {
        return maxTemperature;
    }

    public void setMaxTemperature(double maxTemperature) {
        this.maxTemperature = maxTemperature;
    }

    public double getMinTemperature() {
        return minTemperature;
    }

    public void setMinTemperature(double minTemperature) {
        this.minTemperature = minTemperature;
    }

    public double getAvgTemperature() {
        return avgTemperature;
    }

    public void setAvgTemperature(double avgTemperature) {
        this.avgTemperature = avgTemperature;
    }

    public int getAlarmCount() {
        return alarmCount;
    }

    public void setAlarmCount(int alarmCount) {
        this.alarmCount = alarmCount;
    }

    public int getFiberAlarmCount() {
        return fiberAlarmCount;
    }

    public void setFiberAlarmCount(int fiberAlarmCount) {
        this.fiberAlarmCount = fiberAlarmCount;
    }

    public int getLaserAlarmCount() {
        return laserAlarmCount;
    }

    public void setLaserAlarmCount(int laserAlarmCount) {
        this.laserAlarmCount = laserAlarmCount;
    }

    public int getTemperatureAlarmCount() {
        return temperatureAlarmCount;
    }

    public void setTemperatureAlarmCount(int temperatureAlarmCount) {
        this.temperatureAlarmCount = temperatureAlarmCount;
    }

    public List<DeviceChannel> getDeviceChannels() {
        return deviceChannels;
    }

    public void setDeviceChannels(List<DeviceChannel> deviceChannels) {
        this.deviceChannels = deviceChannels;
    }

    public Map<String, Map<String, Object>> getDeviceChannelTemperatures() {
        return deviceChannelTemperatures;
    }

    public void setDeviceChannelTemperatures(Map<String, Map<String, Object>> deviceChannelTemperatures) {
        this.deviceChannelTemperatures = deviceChannelTemperatures;
    }
}